package com.lyz.dataStructure.algorithm.SAN3602020;

/**
 *@Author:759057893@qq.com Lyz
 *@Date: 2019/8/31 17:19
 *@Description:
 **/

/*
输入
共一行，一个字符串s，仅由英文小写字母组成，1≤|s|≤10000。

输出
一个正整数，表示最大出现次数。


样例输入
aba
样例输出
2

提示
aba的所有子串为a、b、a、ab、ba、aba，其中a的出现次数最多，出现了2次。
 */
import java.util.Scanner;

        import java.util.HashMap;
        import java.util.Iterator;
        import java.util.Map;
        import java.util.Set;

public class 寻找子串 {
    public static void main(String[] args) throws Exception {
        Scanner sc = new Scanner(System.in);
        String st = sc.next();
        char[] cStr = st.toCharArray();
        Map<Character, Integer> map = mapValue(cStr);
        maxValue(map);
    }

    public static Map<Character, Integer> mapValue(char[] str) {
        Map<Character, Integer> map = new HashMap<Character, Integer>();
        if (!(str == null || str.length == 0))
            for (int i = 0; i < str.length; i++)
                if (null != map.get(str[i]))
                    map.put(str[i], map.get(str[i]) + 1);
                else
                    map.put(str[i], 1);

        return map;
    }

    public static Character maxValue(Map<Character, Integer> map) {
        Set<Character> ks = map.keySet();
        Iterator ka = ks.iterator();
        Character maxKey = (Character) ka.next();
        int maxValue = map.get(maxKey);

        while (ka.hasNext()) {
            Character temp = (Character) ka.next();
            if (maxValue < map.get(temp)) {
                maxKey = temp;
                maxValue = map.get(temp);
            }
        }
        System.out.println(maxValue);
        return maxKey;
    }
}